package zzs.generalframework.console.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import javax.persistence.Query;

/**
 * @title
 * @description
 * @project zzs-console
 * @package zzs.generalframework.console.util
 * @author zzs
 * @date 2018年1月31日
 * @version 1.0
 */
public class QueryParameter
{

	private List<Object> parameterList;

	private Map<String, Object> parameterMap;

	public QueryParameter()
	{
		parameterList = new ArrayList<Object>();
		parameterMap = new HashMap<String, Object>();
	}

	public void putParameterObject(Object parameterObj)
	{
		parameterList.add(parameterObj);
	}

	public void putParameterObject(String parameterName, Object parameterValue)
	{
		parameterMap.put(parameterName, parameterValue);
	}

	public void setQueryParameter(Query query)
	{
		if (parameterList != null && parameterList.size() > 0)
		{
			for (int i = 0; query != null && parameterList != null && i < parameterList.size(); i++)
			{
				query.setParameter(i + 1, parameterList.get(i));
			}
		}
		else if (parameterMap != null && parameterMap.size() > 0)
		{
			for (Entry<String, Object> itemEntry : parameterMap.entrySet())
			{
				query.setParameter(itemEntry.getKey(), itemEntry.getValue());
			}
		}

	}

}
